package com.enioka.jqm.test.spring1.config;
import javax.naming.NamingException;
import javax.sql.DataSource;
import org.h2.jdbcx.JdbcDataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jndi.JndiTemplate;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import com.enioka.jqm.test.spring1.domain.OfferingRepository;
@Configuration
@EnableJpaRepositories(basePackageClasses = { OfferingRepository.class })
@EnableTransactionManagement
public class DbConfig
{
@Bean
public DataSource dataSource()
{
try
{
// When running inside a container, use its resource directory.
return (DataSource) new JndiTemplate().lookup("jdbc/spring_ds");
}
catch (NamingException e)
{
// When running on the command line, just create a temporary file DB (only needed for debug).
System.out.println("JNDI datasource does not exist - falling back on hard coded DS");
JdbcDataSource ds = new JdbcDataSource();
ds.setURL("jdbc:h2:./target/TEST.db");
ds.setUser("sa");
ds.setPassword("sa");
return ds;
}
}
}